package com.zofer.study.other;

import java.util.ArrayList;

/**
 * 题目：螺旋矩阵 给定一个m x n大小的矩阵（m行，n列），按螺旋的顺序返回矩阵中的所有元素。
 */
public class SpiralOrder {
    public ArrayList<Integer> spiralOrder(int[][] matrix) {
        ArrayList<Integer> res = new ArrayList<Integer>();
        if(matrix.length==0){
            return res;
        }
        if(matrix[0].length==0){
            return res;
        }
        int up = 0;
        int down = matrix.length-1;
        int left = 0;
        int right = matrix[0].length-1;
        int i=0;
        while(true){
            if(left>right)return res;//向右
            for(int k=left;k<=right;k++)
                res.add(matrix[up][k]);
            up++;
            if(up>down)return res;//向下
            for(int k=up;k<=down;k++)
                res.add(matrix[k][right]);
            right--;
            if(left>right)return res;//向左
            for(int k=right;k>=left;k--)
                res.add(matrix[down][k]);
            down--;
            if(up>down)return res;//向上
            for(int k=down;k>=up;k--)
                res.add(matrix[k][left]);
            left++;
        }
    }
}
